#pragma once
#include<iostream>
#include <string>
#include"util.hpp"

enum LogLeval//日志等级
{
    INFO,
    DEBUG,
    WARNING,
    ERROR,
    FATAL 
};

namespace ns_log 
{
        using namespace ns_util;
        inline  std::ostream& Log(const std::string& leval,const std::string& file_name,int line)
        {
            //加日志等级
            std::string message="[";
            message+=leval;
            message+="]";

            //加文件名
            message+="[";
            message+=file_name;
            message+="]";

            //加错误信息
            message+="[";
            message+=std::to_string(line);//整数转字符串
            message+="]";

            //加时间戳
            message+="[";
            message+=Time_util::GetSTime();
            message+="]";

            std::cout<<message;//数据放在缓冲区，不要endl刷新
            return std::cout;//?开放式日志，可以用作链式调用
        }
        #define LOG(LogLeval) Log(#LogLeval,__FILE__,__LINE__)//?后面没有“；”！！！
}
